Skip to content

chore: remove npm CLI packaging - #690

Merged
rapids-bot[bot] merged 1 commit into
NVIDIA:release/0.7from
willkill07:fix/relay-665-remove-npm-cli-packaging
Aug 4, 2026
Merged

chore: remove npm CLI packaging#690
rapids-bot[bot] merged 1 commit into
NVIDIA:release/0.7from
willkill07:fix/relay-665-remove-npm-cli-packaging

Conversation

@willkill07

@willkill07 willkill07 commented Aug 4, 2026

Copy link
Copy Markdown
Member

Overview

Remove the Node-launcher-based npm distribution of the NeMo Relay CLI. Native binaries, shell and PowerShell installers, Cargo installation, and PyPI nemo-relay-cli-bin wheels remain supported; Node.js bindings and OpenClaw npm packages are unchanged.

  • I confirm this contribution is my own work, or I have the right to submit it under this project's license.
  • I searched existing issues and open pull requests, and this does not duplicate existing work.

Details

  • Simplify scripts/package-cli-bin.py and its tests to produce only PyPI wheels.
  • Remove npm CLI workspaces, lockfile entries, version-bump logic, CI artifacts, publication jobs, and path filters.
  • Remove npm CLI installation guidance and update release documentation to describe the retired npm packages.
  • Preserve native CLI release binaries and wheels, plus the existing Node.js binding and OpenClaw npm release paths.

This intentionally removes the supported npm installation path for the CLI. Deprecating the already-published npm packages remains a post-merge registry operation so package history is retained.

Validation:

  • Focused CLI wheel packaging unit tests: 3 passed.
  • npm ci --ignore-scripts --audit=false --fund=false.
  • just test-python in isolated user configuration: 614 passed, 45 skipped.
  • just test-node in isolated user configuration: 349 passed.
  • just docs and just docs-linkcheck (zero errors; existing external redirect check returned HTTP 403 warning).
  • uv run pre-commit run --all-files.

Where should the reviewer start?

Start with scripts/package-cli-bin.py and .github/workflows/ci_rust.yml, which show the packaging and release-automation boundary after npm CLI removal. Then review RELEASING.md for the maintainer-facing retirement guidance.

Related Issues: (use one of the action keywords Closes / Fixes / Resolves / Relates to)

  • Closes RELAY-665

Summary by CodeRabbit

  • Chores

    • Discontinued npm CLI package distribution. CI/CD workflows updated to remove npm artifact validation, publishing, and uploads; now publish only Python wheel and Node.js packages.
    • Refactored CLI packaging script and configuration to support PyPI wheel distribution exclusively.
    • Simplified package workspace by removing npm CLI package module.
  • Documentation

    • Updated installation documentation, release guides, and README to remove npm CLI installation instructions.

@willkill07
willkill07 requested review from a team as code owners August 4, 2026 14:37
@copy-pr-bot

copy-pr-bot Bot commented Aug 4, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@github-actions github-actions Bot added size:L PR is large Maintenance CI or Build or general repository maintenance lang:python PR changes/introduces Python code labels Aug 4, 2026
@coderabbitai

coderabbitai Bot commented Aug 4, 2026

Copy link
Copy Markdown

Review Change Stack

Walkthrough

The CLI npm package and launcher packaging were removed. CLI binary packaging now produces PyPI wheels only. CI, publishing workflows, release guidance, workspace configuration, and installation documentation were updated accordingly.

Changes

CLI distribution retirement

Layer / File(s) Summary
Version metadata and installation surfaces
RELEASING.md, crates/cli/README.md, docs/getting-started/installation.mdx, README.md
Release and installation documentation no longer describes CLI npm packages or npm-based CLI installation.
Python-only CLI packaging
scripts/package-cli-bin.py, scripts/tests/test_package_cli_bin.py, justfile, package.json
CLI packaging now builds and tests Python wheels only. npm launcher generation, npm archives, related arguments, and the packages/cli-bin workspace entry were removed.
Release pipeline and publishing updates
.github/ci-path-filters.yml, .github/workflows/ci.yaml, .github/workflows/ci_rust.yml, .gitlab-ci.yml
CI and publishing pipelines no longer collect, validate, download, archive, or publish CLI npm artifacts. Node.js, OpenClaw, and Python artifact handling remains.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 60.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title follows Conventional Commits format, uses an allowed type, states the main change, and is concise without a trailing period.
Description check ✅ Passed The description includes all required sections, explains the change, identifies review starting points, records validation, and references a related issue.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands.

Signed-off-by: Will Killian <wkillian@nvidia.com>
@willkill07
willkill07 force-pushed the fix/relay-665-remove-npm-cli-packaging branch from e513fe6 to 353ef27 Compare August 4, 2026 15:19
@github-actions github-actions Bot added size:M PR is medium and removed size:L PR is large labels Aug 4, 2026
@willkill07 willkill07 added this to the 0.7 milestone Aug 4, 2026
@willkill07 willkill07 self-assigned this Aug 4, 2026
@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown

@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown

License Diff

Compared against origin/release/0.7.

License diff failed with exit code 1; this informational check does not block CI.

No license diff output was produced.

Status output
[license-diff] selected languages: rust, node, python
[license-diff] generating current inventory
[license-diff] current: generating Rust inventory
[license-diff] current: Rust inventory complete (449 packages)
[license-diff] current: generating Node inventory
[license-diff] current: Node inventory complete (367 packages)
[license-diff] current: generating Python inventory
[license-diff] current: Python inventory complete (105 packages)
[license-diff] current inventory complete
[license-diff] checking out base ref origin/release/0.7 into a temporary worktree
[license-diff] base: generating Rust inventory
[license-diff] base: Rust inventory complete (449 packages)
[license-diff] base: generating Node inventory
[license-diff] base: Node inventory complete (367 packages)
[license-diff] base: generating Python inventory
[license-diff] removing temporary base worktree
Traceback (most recent call last):
  File "/home/runner/work/NeMo-Relay/NeMo-Relay/scripts/licensing/license_diff.py", line 328, in <module>
    raise SystemExit(main())
                     ^^^^^^
  File "/home/runner/work/NeMo-Relay/NeMo-Relay/scripts/licensing/license_diff.py", line 308, in main
    base_inventory = _worktree_inventory(args.root, args.base_ref or "HEAD", languages)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/NeMo-Relay/NeMo-Relay/scripts/licensing/license_diff.py", line 238, in _worktree_inventory
    inventory = generate_inventory(worktree, languages, label="base")
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/NeMo-Relay/NeMo-Relay/scripts/licensing/license_diff.py", line 74, in generate_inventory
    inventory[language] = attributions_lockfile_md._python_license_inventory()
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/NeMo-Relay/NeMo-Relay/scripts/licensing/attributions_lockfile_md.py", line 880, in _python_license_inventory
    _rendered_python_package_inventory(pkg) for pkg in _lockfile_python_packages(lockfile_pkgs, own_name=own_name)
                                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/NeMo-Relay/NeMo-Relay/scripts/licensing/attributions_lockfile_md.py", line 862, in _lockfile_python_packages
    packages.append(_lockfile_only_python_package(pkg))
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/NeMo-Relay/NeMo-Relay/scripts/licensing/attributions_lockfile_md.py", line 840, in _lockfile_only_python_package
    license_name, license_texts = _artifact_metadata_from_lockfile(pkg)
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/NeMo-Relay/NeMo-Relay/scripts/licensing/attributions_lockfile_md.py", line 794, in _artifact_metadata_from_lockfile
    data = _download_locked_artifact(sdist["url"], sdist["hash"])
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/NeMo-Relay/NeMo-Relay/scripts/licensing/attributions_lockfile_md.py", line 531, in _download_locked_artifact
    with urllib.request.urlopen(url, timeout=10) as response:  # noqa: S310
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/_temp/uv-python-dir/cpython-3.11.14-linux-x86_64-gnu/lib/python3.11/urllib/request.py", line 216, in urlopen
    return opener.open(url, data, timeout)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/_temp/uv-python-dir/cpython-3.11.14-linux-x86_64-gnu/lib/python3.11/urllib/request.py", line 525, in open
    response = meth(req, response)
               ^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/_temp/uv-python-dir/cpython-3.11.14-linux-x86_64-gnu/lib/python3.11/urllib/request.py", line 634, in http_response
    response = self.parent.error(
               ^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/_temp/uv-python-dir/cpython-3.11.14-linux-x86_64-gnu/lib/python3.11/urllib/request.py", line 563, in error
    return self._call_chain(*args)
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/_temp/uv-python-dir/cpython-3.11.14-linux-x86_64-gnu/lib/python3.11/urllib/request.py", line 496, in _call_chain
    result = func(*args)
             ^^^^^^^^^^^
  File "/home/runner/work/_temp/uv-python-dir/cpython-3.11.14-linux-x86_64-gnu/lib/python3.11/urllib/request.py", line 643, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 503: first byte timeout

@willkill07 willkill07 changed the title chore: remove npm CLI packaging chore!: remove npm CLI packaging Aug 4, 2026
@github-actions github-actions Bot added the breaking PR introduces a breaking change label Aug 4, 2026
@willkill07 willkill07 changed the title chore!: remove npm CLI packaging chore: remove npm CLI packaging Aug 4, 2026
@willkill07 willkill07 removed the breaking PR introduces a breaking change label Aug 4, 2026

@mnajafian-nv mnajafian-nv left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@willkill07

Copy link
Copy Markdown
Member Author

/merge

@rapids-bot
rapids-bot Bot merged commit 7e7291d into NVIDIA:release/0.7 Aug 4, 2026
86 checks passed
@willkill07
willkill07 deleted the fix/relay-665-remove-npm-cli-packaging branch August 4, 2026 23:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lang:python PR changes/introduces Python code Maintenance CI or Build or general repository maintenance size:M PR is medium

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants